Antes de que el entrenamiento pueda comenzar, el usuario debe decidir cual es la topología de la red, especificando el número de unidades de la capa de entrada, el número de capas ocultas, el número de unidades en cada capa oculta y el número de unidades en la capa de salida.
La normalización de los valores de entrada para cada atributo medido en los ejemplos de entrenamiento, ayudará a optimizar la velocidad en la fase de entrenamiento. Normalmente, si el dominio de un atributo A es {a0, a1, a2}, entonces debemos asignar tres unidades de entrada para poder representar A. Esto es, podemos tener I0, I1, I2 como unidades de entrada. Cada unidad es inicializada en 0. Si A = a0 entonces I0 es colocado en 1. Si A = a1, I1 es colocado en 1 y así sucesivamente. Una unidad de salida puede ser usada para representar dos clases (donde el valor de 1 representa una clase y el valor de 0 representa la otra). Si hay más de dos clases, entonces una unidad de salida debe ser usada por cada clase.
No existen reglas exactamente definidas como las "mejores" para el número de capas ocultas. En general el diseño de una red neuronal es un proceso de prueba y error y puede afectar la precisión del resultado de la red entrenada. Los valores iniciales de los pesos pueden también afectar la precisión. Una vez la red ha sido entrenada y su precisión no es considerada aceptable, es común repetir el proceso de entrenamiento con una topología diferente de red o con una inicialización de pesos diferente.